home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows News 2010 October/November
/
WNhs48_oct-nov2010.iso
/
Onglet4
/
Advanced SystemCare Free
/
asc-setup.exe
/
{tmp}
/
IObitToolbarSetup.exe
/
content
/
toolbar.js
< prev
Wrap
Text File
|
2010-05-04
|
11KB
|
393 lines
var _i0Members={
m_xeventRecord: [],
m_recordId: 1,
objRecord: function(objMozilla, objDispatch ,recordId){
this.m_objMozilla = objMozilla;
this.m_objDispatch = objDispatch;
this.m_recordId = recordId;
},
DoBrowserNavigate: function(uri)
{
try
{
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
var w = ww.activeWindow;
w.loadURI(uri);
}
catch (e)
{
try { openUILink(uri, null); }
catch (ee) {}
}
},
StateChangeEvent: function(aWebProgress, aRequest, aStateFlags, aStatus)
{
this.m_aWebProgress = aWebProgress;
this.m_aRequest = aRequest;
this.m_aStateFlags = aStateFlags;
this.m_aStatus = aStatus;
},
Generic_ProgressListener: function(objDispatch, mask, flags)
{
this.objDispatch = objDispatch;
this.stateFlags = flags;
this.mask = mask;
this.inStateChange = false;
this.isGlobal = false;
this.QueryInterface = function(aIID)
{
try
{
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
aIID.equals(Components.interfaces.nsISupports))
{
return this;
}
}
catch (e)
{
}
throw Components.results.NS_NOINTERFACE;
};
this.onProgressChange = function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) { return 0; };
this.onStatusChange = function(aWebProgress, aRequest, aStatus, aMessage) { return 0; };
this.onSecurityChange = function(aWebProgress, aRequest, aState) { return 0; };
this.onLinkIconAvailable = function(a) { return 0; };
this.onLocationChange = function(aProgress, aRequest, aLocation) { return 0; };
this.onStateChange = function(aWebProgress, aRequest, aStateFlags, aStatus)
{
if (this.inStateChange || this.objDispatch == null)
return 0;
this.inStateChange = true;
try
{
var members = _i0Members;
if (aStateFlags & this.stateFlags)
{
var evt = new members.StateChangeEvent (aWebProgress, aRequest, aStateFlags, aStatus);
this.objDispatch.ProcessEvent(evt);
}
if (this.isGlobal && window.parent.gBrowser != null)
{
window.setTimeout(members.ReplaceGlobalProgressCallback, 0, this);
this.isGlobal = false;
}
}
catch (e)
{
}
finally
{
this.inStateChange = false;
}
return 0;
};
},
m_progressCallbacks: new Array(),
AddProgressCallback: function(objDispatch, mask, flags)
{
try
{
var members = _i0Members;
var listener = new members.Generic_ProgressListener(objDispatch, mask, flags);
var webProgress = window.parent.gBrowser;
if (webProgress == null) // FF 2
{
listener.isGlobal = true;
webProgress = Components.classes["@mozilla.org/docloaderservice;1"].getService(Components.interfaces.nsIWebProgress);
}
webProgress.addProgressListener(listener, mask);
members.m_progressCallbacks[listener] = webProgress;
return true;
}
catch (e)
{
}
return false;
},
ReplaceGlobalProgressCallback: function(listener)
{
try
{
if (window.parent.gBrowser == null || listener == null)
return;
var members = _i0Members;
var globalWebProgress = members.m_progressCallbacks[listener];
globalWebProgress.removeProgressListener(listener, listener.mask);
window.parent.gBrowser.addProgressListener(listener, listener.mask);
members.m_progressCallbacks[listener] = window.parent.gBrowser;
}
catch (e)
{
}
},
RemoveProgressCallback: function(listener)
{
if (listener == null)
return;
try
{
var members = _i0Members;
var webProgress = members.m_progressCallbacks[listener];
if (webProgress != null)
webProgress.removeProgressListener(listener, listener.mask);
members.m_progressCallbacks[listener] = null;
}
catch (e)
{
}
},
RemoveProgressCallbacks: function()
{
try
{
var members = _i0Members;
for (listener in members.m_progressCallbacks)
{
members.RemoveProgressCallback(listener);
}
members.m_progressCallbacks.splice(0, members.m_progressCallbacks.length);
}
catch (e)
{
}
},
m_SearchAsstListener: null,
SearchAsstCallback:
{
NS_ERROR_UNKNOWN_HOST: 0x804B001E, // see https://developer.mozilla.org/en/Table_Of_Errors
DNSErrorURL: null,
KeywordURL: null,
LoadURL: function(wnd, url)
{
try
{
wnd.content.document.location = url;
wnd.content.focus();
}
catch (e)
{
}
},
ProcessEvent: function(evt)
{
if (evt.m_aRequest.status == this.NS_ERROR_UNKNOWN_HOST)
{
var term = /^http:\/\/([^/]+)/.exec(evt.m_aRequest.name)[1];
if (term != null && term != '')
{
var base = this.DNSErrorURL;
if (/^[a-zA-Z0-9]+$/.test(term))
base = this.KeywordURL;
if (base != null && base != '')
{
this.LoadURL(evt.m_aWebProgress.DOMWindow, 'about:blank');
this.LoadURL(evt.m_aWebProgress.DOMWindow, base + escape(term));
}
}
}
}
},
GetBoolPref: function(service, name)
{
var result = false;
try
{
result = service.getBoolPref(name);
}
catch (e)
{
}
return result;
},
GetCharPref: function(service, name)
{
var result = null;
try
{
result = service.getCharPref(name);
}
catch (e)
{
}
return result;
},
OpenSearchDownloadObserver:
{
URL: null,
downloading: false,
onDownloadComplete: function(nsIDownloader, nsresult, nsIFile)
{
this.downloading = false;
try
{
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
prefService.setCharPref("browser.search.selectedEngine", "My Way");
prefService.setCharPref("extensions.IObitBar.openSearchURL", this.URL);
}
catch (e)
{
}
}
},
SetSearchAssistantURLs: function(kwdURL, dnsURL, openSearchURL, bEnableOpenSearchProtect)
{
try
{
var members = _i0Members;
var companyextensions = "extensions.IObitBar";
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var prevKwdURL = members.GetCharPref(prefService, companyextensions + ".prevKwdURL");
if (kwdURL != null && kwdURL != '')
{
if (prevKwdURL == null || prevKwdURL == '')
{
prefService.setCharPref(companyextensions + ".prevKwdURL", members.GetCharPref(prefService, "keyword.URL"));
prefService.setBoolPref(companyextensions + ".prevKwdEnabled", members.GetBoolPref(prefService, "keyword.enabled"));
}
prefService.setCharPref("keyword.URL", kwdURL);
prefService.setBoolPref("keyword.enabled", true);
}
else
{
if (prevKwdURL != null && prevKwdURL != '')
{
prefService.setCharPref("keyword.URL", prevKwdURL);
prefService.setBoolPref("keyword.enabled", members.GetBoolPref(prefService, companyextensions + ".prevKwdEnabled"));
prefService.clearUserPref(companyextensions + ".prevKwdURL");
prefService.clearUserPref(companyextensions + ".prevKwdEnabled");
}
}
if (dnsURL != null && dnsURL != '' || kwdURL != null && kwdURL != '')
{
if (members.m_SearchAsstListener == null)
{
members.SearchAsstCallback.DNSErrorURL = dnsURL;
members.SearchAsstCallback.KeywordURL = kwdURL;
members.m_SearchAsstListener = members.AddProgressCallback(members.SearchAsstCallback,
Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT,
Components.interfaces.nsIWebProgressListener.STATE_STOP);
window.addEventListener("unload", new function() { members.RemoveProgressCallback(members.m_SearchAsstListener); }, false);
}
}
else
{
if (members.m_SearchAsstListener != null)
{
members.RemoveProgressCallback(members.m_SearchAsstListener);
members.m_SearchAsstListener = null;
}
}
if (openSearchURL != null && openSearchURL != '')
{
var oldURL = members.GetCharPref(prefService, companyextensions + ".openSearchURL");
if ((oldURL == null || oldURL != openSearchURL) && !members.OpenSearchDownloadObserver.downloading)
{
members.OpenSearchDownloadObserver.downloading = true;
members.OpenSearchDownloadObserver.URL = openSearchURL;
var dir = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);
dir.append('searchplugins');
if (!dir.exists())
dir.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 511);
var destFile = dir.clone();
destFile.append('IObitBar.xml');
var downloader = Components.classes["@mozilla.org/network/downloader;1"].createInstance();
downloader.QueryInterface(Components.interfaces.nsIDownloader);
downloader.init(members.OpenSearchDownloadObserver, destFile);
var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
var httpChannel = ioService.newChannel(openSearchURL, "", null);
httpChannel.QueryInterface(Components.interfaces.nsIHttpChannel);
httpChannel.asyncOpen(downloader, destFile);
}
// TODO: set this on shutdown so it will take effect next time browser is opened
else if (bEnableOpenSearchProtect)
{
prefService.setCharPref("browser.search.selectedEngine", "My Way");
}
}
}
catch (e)
{
}
},
ProcessEvent: function(evt){
var members = _i0Members;
if (members.m_xeventRecord[evt.type] )
{
var len = members.m_xeventRecord[evt.type].length;
for (var ii = 0; ii< len ; ii++)
{
if (members.m_xeventRecord[evt.type][ii].m_objMozilla == evt.currentTarget)
{
members.m_xeventRecord[evt.type][ii].m_objDispatch.ProcessEvent(evt);
}}return;}},
AddEventListenerObject: function(objMozilla, type, objDispatch, bcapture)
{
this.m_recordId++;
var len;
if (this.m_xeventRecord[type]){
len = this.m_xeventRecord[type].length;
}
else{
len = 0;
this.m_xeventRecord[type] = new Array();
}
this.m_xeventRecord[type][len] = new this.objRecord(objMozilla, objDispatch , this.m_recordId);
objMozilla.addEventListener(type, this.ProcessEvent, bcapture);
return this.m_recordId;
},
RemoveByIndex: function (ar,ii){
if(0<=ii&&ii < ar.length) {
if(0==ii)
ar=ar.slice(1);
else if(ar.length-1==ii)
ar=ar.slice(0,-1);
else{
var ll=new Array();
ar=ll.concat(ar.slice(0,ii),ar.slice(ii+1));
}}return ar;},
RemoveEventListenerObject: function(type, recordId){
if (this.m_xeventRecord[type] ){
var len = this.m_xeventRecord[type].length;
for (var ii = 0; ii< len ; ii++){
if (this.m_xeventRecord[type][ii].m_recordId == recordId ){
//delete element
this.m_xeventRecord[type] = this.RemoveByIndex(this.m_xeventRecord[type] ,ii);
return recordId;
}}}return -1;
},
};